package main.java.br.com.projeto.domain.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="produto_venda")
@IdClass(value = ItemVendaPK.class)
public class ItemVenda extends ItemNota {

	/**
	 * 
	 */
	private static final long serialVersionUID = 3938426443614959504L;

	@Id
	@Column(name="numero_nota")
	private Long numeroNota;
	
	@Id
	@Column(name="numero_serie")
	private String numeroSerie;
	
	@Id
	@Column(name="produto_id")
	private Long produtoId;
	
	@ManyToOne(fetch=FetchType.EAGER, optional=false)
	@JoinColumn(name="produto_id", referencedColumnName="id",  insertable=false, updatable=false)
	private Produto produto;
	

	@ManyToOne(fetch=FetchType.LAZY, optional=true)
	@JoinColumns({
		@JoinColumn(name="numero_nota",insertable=false, updatable=false, referencedColumnName="numero_nota"),
		@JoinColumn(name="numero_serie",insertable=false, updatable=false, referencedColumnName="numero_serie")
	})
	private Venda venda;

	@Column
	private Float bcIcms;

	@Column
	private Float valorIcms;
	
	@Column
	private Float percentualIcms;
	
	public Long getNumeroNota() {
		return numeroNota;
	}

	public void setNumeroNota(Long numeroNota) {
		this.numeroNota = numeroNota;
	}

	public String getNumeroSerie() {
		return numeroSerie;
	}

	public void setNumeroSerie(String numeroSerie) {
		this.numeroSerie = numeroSerie;
	}

	public Long getProdutoId() {
		return produtoId;
	}

	public void setProdutoId(Long produtoId) {
		this.produtoId = produtoId;
	}

	public Produto getProduto() {
		return produto;
	}

	public void setProduto(Produto produto) {
		this.produto = produto;
	}

	public Venda getVenda() {
		return venda;
	}

	public void setVenda(Venda venda) {
		this.venda = venda;
	}

	public Float getBcIcms() {
		return bcIcms;
	}

	public void setBcIcms(Float bcIcms) {
		this.bcIcms = bcIcms;
	}

	public Float getValorIcms() {
		return valorIcms;
	}

	public void setValorIcms(Float valorIcms) {
		this.valorIcms = valorIcms;
	}

	public Float getPercentualIcms() {
		return percentualIcms;
	}

	public void setPercentualIcms(Float percentualIcms) {
		this.percentualIcms = percentualIcms;
	}
	
	
	
}
